package com.fowo.api.model.tmp.wfs.cargo.item;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * WFS货件子表临时表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class TmpWfsCargoItemImportPo {

  /** 入库订单号 */
  @ExcelProperty("入库订单号")
  @Size(max = 50, message = "入库订单号长度不能超过50")
  private String inboundOrderId;

  /** 货件号 */
  @ExcelProperty("货件号")
  @Size(max = 50, message = "货件号长度不能超过50")
  private String shipmentId;

  /** GTIN */
  @ExcelProperty("GTIN")
  @Size(max = 50, message = "GTIN长度不能超过50")
  private String gtin;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String sku;

  /** 商品描述 */
  @ExcelProperty("商品描述")
  @Size(max = 50, message = "商品描述长度不能超过50")
  private String itemDesc;

  /** 商品总数 */
  @ExcelProperty("商品总数")
  @IntegerString(message = "商品总数数值格式不正确", label = "商品总数")
  private String itemQty;

  /** 总箱数 */
  @ExcelProperty("总箱数")
  @IntegerString(message = "总箱数数值格式不正确", label = "总箱数")
  private String vendorPackQty;

  /** 每箱数量 */
  @ExcelProperty("每箱数量")
  @IntegerString(message = "每箱数量数值格式不正确", label = "每箱数量")
  private String innerPackQty;

  /** 签收数量 */
  @ExcelProperty("签收数量")
  @IntegerString(
    message = "签收数量数值格式不正确",
    label = "签收数量",
    min = 0
  )
  private String receivedQty;

  /** 损坏数量 */
  @ExcelProperty("损坏数量")
  @IntegerString(
    message = "损坏数量数值格式不正确",
    label = "损坏数量",
    min = 0
  )
  private String damagedQty;

  /** 填充率 */
  @ExcelProperty("填充率")
  @DecimalString(message = "填充率小数格式不正确", label = "填充率")
  private String fillRate;

  /** 预期交付日期 */
  @ExcelProperty("预期交付日期")
  @DateTimeString(message = "预期交付日期不是有效的时间日期格式")
  private String expectedDeliveryDate;

  /** 更新预期交付日期 */
  @ExcelProperty("更新预期交付日期")
  @DateTimeString(message = "更新预期交付日期不是有效的时间日期格式")
  private String updatedExpectedDeliveryDate;

  /** 承运人 */
  @ExcelProperty("承运人")
  @Size(max = 50, message = "承运人长度不能超过50")
  private String shipNodeName;

  /** 品名 */
  @ExcelProperty("品名")
  @LongString(message = "品名数值格式不正确", label = "品名")
  private String productName;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String localSku;

  /** 是否更新数据 */
  @ExcelProperty("是否更新数据")
  @BooleanString(message = "是否更新数据格式不正确，请使用“是”，“否”")
  private String isUpdate;

  /** 货件创建时间 */
  @ExcelProperty("货件创建时间")
  @DateTimeString(message = "货件创建时间不是有效的时间日期格式")
  private String receivingStartDate;
}
